[INV-MIGRATION-180] Создать таблицу menu_db.menu_templates

Развертывание физических таблиц комплексных меню и пользовательских статусов активации

Author

Services Task & Simulation Framework Documentation

Published

July 13, 2026

NoteКраткая карточка задачи

Задача миграции 12.1: Развертывание структур порционного учета потребления в СУБД холодильника

  • Репозиторий / Компонент: fridge-service / consume-service (База fridge_db, контур INVENTORY).
  • Целевая СУБД: PostgreSQL v15+.
  • Инструкция по шагам: Выполнить DDL-миграцию для создания таблиц сессий потребления (consumption_sessions) и связанных с ними порционных вычетов (consumption_items) внутри базы fridge_db для сквозного аудита утилизации еды пользователями. Таблицы создаются в едином транзакционном контуре с балансами инвентаря.
-- Скрипт миграции для fridge_db (Контур INVENTORY)
CREATE TABLE IF NOT EXISTS fridge_db.consumption_sessions (
    id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
    home_group_id VARCHAR(64) NOT NULL,
    user_id VARCHAR(64) NOT NULL,
    trace_id VARCHAR(128) NOT NULL, -- X-Request-ID для сквозного трекинга
    space_type VARCHAR(16) NOT NULL, -- 'HOME' / 'OFFICE'
    consumed_at TIMESTAMP WITH TIME ZONE DEFAULT NOW()
);

CREATE TABLE IF NOT EXISTS fridge_db.consumption_items (
    id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
    session_id UUID REFERENCES fridge_db.consumption_sessions(id) ON DELETE CASCADE,
    food_element_id VARCHAR(64) NOT NULL,
    quantity_spent NUMERIC(10, 3) NOT NULL
);

CREATE INDEX IF NOT EXISTS idx_consumption_sessions_group 
ON fridge_db.consumption_sessions (home_group_id, consumed_at DESC);